package com.zw.yzk.kabu.data.network.service;

import com.app.common.download.Download;
import com.zw.yzk.kabu.data.network.entity.*;
import com.zw.yzk.kabu.data.network.task.SkinBuyFreeTask;
import retrofit2.http.*;
import rx.Observable;

/**
 * Created by skydar on 2017/4/14.
 */

public interface SkinService {

    @GET("api/skinpackage_homepage")
    Observable<SkinCategoryListEntity> getSkinCategory(
            @Query("user_id") String userId,
            @Query("access_token") String token,
            @Query("last_id") int lastId,
            @Query("size") int size,
            @Query("platform_type") int platform);

    @GET("api/skinpackage_list")
    Observable<SkinListEntity> getSkinPackageList(
            @Query("user_id") String userId,
            @Query("access_token") String token,
            @Query("class_id") int categoryId,
            @Query("last_id") int lastId,
            @Query("size") int size,
            @Query("platform_type") int platform);

    @GET("api/skinpackage")
    Observable<SkinPackageEntity> getSkinPackage(
            @Query("user_id") String userId,
            @Query("access_token") String token,
            @Query("skinpackage_id") int packageId);

    @POST("api/skinpackage_free_buy")
    Observable<Entity> buyFreePackage(@Body SkinBuyFreeTask skinPackage);

    @GET("api/skinpackage_order_list")
    Observable<SkinOrderListEntity> getSkinOrderList(
            @Query("user_id") String userId,
            @Query("access_token") String token,
            @Query("last_id") int lastId,
            @Query("size") int size,
            @Query("platform_type") int platform);

    @Streaming
    @GET
    Download.Builder download(@Url String url);
}
